#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
应用程序框架分析器 - API服务器配置
定义API服务器的各项配置参数
"""

import os
from pathlib import Path

# 服务器配置
SERVER_HOST = os.environ.get('API_HOST', '127.0.0.1')
SERVER_PORT = int(os.environ.get('API_PORT', '5000'))
DEBUG_MODE = os.environ.get('API_DEBUG', 'false').lower() == 'true'

# 目录配置
BASE_DIR = Path(__file__).parent.parent.parent  # 项目根目录
UPLOAD_FOLDER = os.environ.get('UPLOAD_FOLDER', BASE_DIR / 'uploads')
REPORT_FOLDER = os.environ.get('REPORT_FOLDER', BASE_DIR / 'reports')

# 上传文件配置
MAX_CONTENT_LENGTH = int(os.environ.get('MAX_CONTENT_LENGTH', str(1024 * 1024 * 5 * 1024)))  # 默认5GB
ALLOWED_EXTENSIONS = {
    'exe', 'msi', 'msix', 'appx',  # Windows
    'apk', 'aab',                  # Android
    'ipa',                         # iOS
    'app', 'dmg',                  # macOS
    'deb', 'rpm', 'appimage',      # Linux
    'hap',                         # Harmony OS
    'zip'                          # 通用压缩包
}

# 文件清理配置
AUTO_CLEANUP_UPLOADS = os.environ.get('AUTO_CLEANUP_UPLOADS', 'true').lower() == 'true'  # 分析完成后自动清理上传文件
AUTO_CLEANUP_REPORTS = os.environ.get('AUTO_CLEANUP_REPORTS', 'false').lower() == 'true'  # 是否自动清理报告文件
CLEANUP_AFTER_DAYS = int(os.environ.get('CLEANUP_AFTER_DAYS', '7'))  # 多少天后自动清理报告

# 日志配置
LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO')
LOG_FILE = os.environ.get('LOG_FILE', 'app_analyzer_api.log')

# CORS配置
ENABLE_CORS = True
CORS_ORIGINS = '*'  # 允许所有来源，生产环境应设置为特定域名

# 任务执行配置
TASK_TIMEOUT = int(os.environ.get('TASK_TIMEOUT', str(3600)))  # 任务超时时间（秒）
MAX_CONCURRENT_TASKS = int(os.environ.get('MAX_CONCURRENT_TASKS', '5'))  # 最大并发任务数 
